home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 13
/
64er_Magazin_Sonderheft_13_19xx_Markt__Technik_de_Side_A.d64
/
quellcode messr.
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
133 lines
100 sys9*4096
110 .opt p,oo
120 *= 52000
125 irqvec = $fffe
130 nmivec = $fffa
135 vic = $d000
140 ta1lo = $dc04
150 ta1hi = $dc05
160 tb1lo = $dc06
170 tb1hi = $dc07
180 icr1 = $dc0d
190 cra1 = $dc0e
200 crb1 = $dc0f
210 ;
220 ta2lo = $dd04
230 ta2hi = $dd05
240 tb2lo = $dd06
250 tb2hi = $dd07
260 icr2 = $dd0d
270 cra2 = $dd0e
280 crb2 = $dd0f
290 vicsr1 = vic+17
300 ;
310 bta1lo = $02c0,buffers ab 704
320 bta1hi = bta1lo+1
330 btb1lo = bta1lo+2
340 btb1hi = bta1lo+3
350 full = bta1lo+4
360 ;
380 irqbuf = $02d0;zwischenspeicher
390 nmibuf = irqbuf+2
400 cpubuf = irqbuf+4
450 ;
500 start sei
502 lda $01
504 sta cpubuf;zustand merken
506 lda #$35
508 sta $01;rom aus
510 lda irqvec;irqvec merken
520 sta irqbuf
530 lda irqvec+1
535 sta irqbuf+1
540 sta irqbuf+1
542 lda nmivec;nmivec merken
544 sta nmibuf
546 lda nmivec+1
548 sta nmibuf+1
549 ;
550 lda #<ablese;neuer vektor
560 sta irqvec
565 sta nmivec
570 lda #>ablese
580 sta irqvec+1
585 sta nmivec+1
599 ;
600 stop lda #%10010000;systemtakte
610 sta cra1
620 lda #%11011000;unterlaeufe zaehlen
630 sta crb1
640 lda #%10111000;cnt-flanken zaehlen
650 sta cra2
660 set lda bta1lo;alle laden
670 sta ta1lo
680 lda bta1hi
690 sta ta1hi
700 lda btb1lo
710 sta tb1lo
720 lda btb1hi
730 sta tb1hi
740 lda #$ff;default
745 sta full
750 sta ta2lo
760 sta ta2hi
770 seticr lda #%01111111;loeschen
780 sta icr1
790 sta icr2
800 lda #%10000010;irq durch b-unterl.
810 sta icr1
820 lda #%11011001;uhr start b
825 sta crb1
828 lda #%10010001;uhr start
830 ldx #%10111001;counter start
835 ldy #%10101000;stop fuer spaeter y-reg bleibt bei irq
840 cli
850 sta cra1;start uhr
860 stx cra2;start counter
880 test lda ta2hi;ueberlauftest
890 bne test
900 lda ta2lo;lobyte
910 bne test
950 sei
960 lda #$01
970 sta full;flag setzen
980 jmp normal
999 ;
1010 ablese sei;irq routine
1020 sty cra2;counter stoppen
1030 lda ta2lo;abspeichern
1040 sta bta1lo
1050 lda ta2hi
1060 sta bta1hi
1070 pla
1075 ;pla
1080 pla
1085 ;pla
1090 pla
1095 ;pla
1100 normal lda #%10010000;a stop
1110 sta cra1
1120 lda #%11011000;b stop
1130 sta crb1
1150 lda irqbuf;vektor holen
1160 sta irqvec
1170 lda irqbuf+1
1180 sta irqvec+1
1182 lda nmibuf;vektor holen
1184 sta nmivec
1186 lda nmibuf+1
1188 sta nmivec+1
1190 lda #$40
1200 sta ta1hi
1230 lda #%01111111;loeschen
1240 sta icr1
1250 sta icr2
1260 lda #%10000001;irq durch a-unterl
1270 sta icr1
1280 lda #$01;timer a starten
1290 sta cra1
1300 lda cpubuf
1310 sta $01;alter zustand
1340 cli
1350 rts